package fr.upmc.tps.mdoc.domain;

import java.util.List;

import sessionBeans.GestionContactRemote;
import fr.upmc.tps.mdoc.models.Entreprise;
import fr.upmc.tps.mdoc.models.IContact;
import fr.upmc.tps.mdoc.tools.ManagerEJButils;

public class DAOContact implements IDAOContact {

	public DAOContact() {
	}

	// pour déboguer, et rester compatible avec le code existant, on conserve un
	// pseudo pattern singleton
	public static final IDAOContact getInstance() {
		return new DAOContact();
	}

	/**
	 * Ajout d'un contact dans la base de donnée
	 * 
	 * @param contact
	 *            le contact qu'on veut ajouter dans la base de donnée
	 */
	public void addContact(final IContact contact) {

		ManagerEJButils.getGestionContactRemote().addContact(
				contact.getFirstName(), contact.getLastName(),
				contact.getEmail());

	}

	/**
	 * Retourne la liste de tous les contacts existants
	 * 
	 * @return
	 */
	public List<IContact> getContacts() {

		List<IContact> contacts = null;
		return contacts;

	}

	/**
	 * Cette méthode cherche de la base un contact à partir de son id
	 * 
	 * @param contactId
	 *            l'id du contact qu'on veut cherche de la base
	 * @return le contact correspondant à l'id en argument
	 */
	public IContact getContact(final long contactId) {

		IContact contact = null;

		return contact;

	}

	@Override
	public List<IContact> getContacts(final String name) {

		List<IContact> contacts = null;

		return contacts;

	}

	/**
	 * Mise à jour du contact contact
	 * 
	 * @param contact
	 *            le contact à mettre à jour
	 * @return true si la mise à jour a bien eu lieu et false sinon
	 */
	public boolean updateContact(final IContact contact) {
		return true;

	}

	/***
	 * Suppression du contact ayant l'identifiant contactId
	 * 
	 * @param contactId
	 *            l'identifiant du contact à supprimer
	 * @return true si le contact a bien été supprimé et false sinon
	 */
	public boolean deleteContact(final IContact contact) {

		return true;

	}

	public Entreprise getEntreprise(final long contactId) {

		Entreprise entreprise = null;

		return entreprise;

	}

	public boolean deleteEntreprise(final long contactId) {

		return true;
	}

}
